<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 计算任意多个数的和

    // ES5
    // function add() {
    //     // 函数的内置参数 => arguments  函数调用时用于存放实际参数的集合(伪数组)
    //     // arguments => [1, 4, 7, 2, 5, 8]
    //     var sum = 0
    //     for (var i = 0; i < arguments.length; i++) {
    //         var item = arguments[i];
    //         sum += item;
    //     }
    //     return sum;
    // }

    // var result = add(1, 4, 7, 2, 5, 8)
    // console.log(result);


    // function fn(a, b) {
    //    a = 1;
    //    b = 2;
    //  }
    // fn(1, 2);

    // Rest参数在函数中的应用
    // 原理: 形参和实参一一对应
    // function add(...list) {
    //     // ...list => 1, 4, 7, 2, 5, 8
    //     console.log(list); //数组

    //     var sum = 0
    //     for (var i = 0; i < list.length; i++) {
    //         var item = list[i];
    //         sum += item;
    //     }
    //     return sum;
    // }

    // var result = add(1, 4, 7, 2, 5, 8)
    // console.log(result);

    function add(a, ...list) {
        // a => 1  ...list =  4, 7, 2, 5, 8
        console.log(a, list); //数组

        var sum = a;
        for (var i = 0; i < list.length; i++) {
            var item = list[i];
            sum += item;
        }
        return sum;
    }

    var result = add(1, 4, 7, 2, 5, 8)
    console.log(result);





</script>

</html>